#!/bin/bash

# 普通启动脚本 - 不使用 TurboRepo

echo "🚀 启动普通服务（不使用 TurboRepo）..."

# 检查是否安装了 Bun
if ! command -v bun &> /dev/null; then
    echo "❌ Bun 未安装，请先安装 Bun: https://bun.sh"
    exit 1
fi

# 检查是否安装了PM2
if ! command -v pm2 &> /dev/null; then
    echo "❌ PM2 未安装，正在安装..."
    bun add -g pm2
fi

# 检查是否安装了serve（用于前端静态文件服务）
if [ ! -x "/root/.bun/bin/serve" ]; then
    echo "📦 安装 serve..."
    bun add -g serve
fi

# 确保 Bun 全局 bin 在 PATH 中（影响 PM2 子进程）
export PATH="/root/.bun/bin:$PATH"

# 创建日志目录
mkdir -p logs

# 检查环境文件
if [ ! -f "apps/api/.env" ]; then
    echo "⚠️  警告: apps/api/.env 文件不存在，请确保已配置环境变量"
    echo "ℹ️  提示: 请在 apps/api 目录下创建 .env 文件并配置数据库连接等信息"
fi

# 检查构建文件
if [ ! -d "apps/web/dist" ]; then
    echo "⚠️  警告: apps/web/dist 目录不存在，请先运行 ./build-normal.sh 构建 Web 前端"
fi

if [ ! -d "apps/web-mobile/dist" ]; then
    echo "⚠️  警告: apps/web-mobile/dist 目录不存在，请先运行 ./build-normal.sh 构建移动端前端"
fi

if [ ! -d "apps/api/dist" ]; then
    echo "⚠️  警告: apps/api/dist 目录不存在，请先运行 ./build-normal.sh 构建后端 API"
fi

# 停止现有进程（如果存在）
echo "🛑 停止现有进程..."
pm2 stop vue-turbo-stack-api vue-turbo-stack-web vue-turbo-stack-web-mobile 2>/dev/null || true
pm2 delete vue-turbo-stack-api vue-turbo-stack-web vue-turbo-stack-web-mobile 2>/dev/null || true

# 启动后端 API
echo "▶️  启动后端 API..."
pm2 start bun --name "vue-turbo-stack-api" -- run apps/api/dist/index.js

# 启动 Web 前端
echo "▶️  启动 Web 前端..."
pm2 start serve --name "vue-turbo-stack-web" -- -s apps/web/dist -l 5173

# 启动移动端前端
echo "▶️  启动移动端前端..."
pm2 start serve --name "vue-turbo-stack-web-mobile" -- -s apps/web-mobile/dist -l 5174

# 保存PM2配置
pm2 save

# 设置开机自启（可选）
echo "💡 如需开机自启，请运行: pm2 startup"

echo "✅ 普通服务启动完成！"
echo ""
echo "🌐 服务访问地址:"
echo "   - 后端API: http://47.92.153.176:3017"
echo "   - Web 前端: http://47.92.153.176:5173"
echo "   - 移动端前端: http://47.92.153.176:5174"
echo ""
echo "📊 查看状态: pm2 status"
echo "📝 查看日志: pm2 logs"
echo "🔄 重启服务: pm2 restart all"
echo "🛑 停止服务: ./stop-server.sh"
